// @ 會指向 /src (webpack編譯時幫你導向)
import HelloWorld from '@/components/HelloWorld.vue'
export default{
components: {
HelloWorld, // 對應引入的名稱,此名稱亦用於 template
}
}
<!-- 傳遞純文字 -->
<HelloWorld user-name="Welcome to Your Vue.js App" />
<!-- 動態附值 利用 v-bind: 就可以帶入 view 的 參數 -->
<HelloWorld :user-name="post.title + ' by ' + post.author.name" />
export default {
props: {
src: {
type: String,
required: true,
default: () => { message: "test"; },
// 必須符合陣列中的值 才會通過
validator: value => { ["test"].indexOf(value) !== -1; }
}
}
}
靜態值 使用 "" 即可
動態值(有用到變數的) 使用 v-bind:title="post.title"
會被視為表達式,須要使用 v-bind者: 數字、布林、陣列、物件
布林值,預設為true(免v-bind)
<!-- 可不代入值,預設為true,不使用 v-bind -->
<blog-post is-published></blog-post>
<!-- -->
<blog-post v-bind:is-published="false"></blog-post>
<blog-post v-bind:is-published="post.isPublished"></blog-post>
<!-- 使用 v-bind 關鍵字 直接帶入物件 -->
<blog-post v-bind="post"></blog-post>
<!-- 上面的會被編譯成如下 -->
<blog-post
v-bind:id="post.id"
v-bind:title="post.title"
></blog-post>
// 狀況1: 將 Props 設為本地要使用的值,將其用 data 保存在對其操作
props: ['initialCounter'],
data: function () {
return {
counter: this.initialCounter
}
}
// 狀況2: 純粹要對 Props 做運算處理,使用 computed
props: ['size'],
computed: {
normalizedSize: function () {
return this.size.trim().toLowerCase()
}
}
export default {
props: {
msg: {
// null 和 undefined 會通過任何型別
type: String, // 不建議多個
required: true,
// default: "test"
// default 可使用 Function 產生或直接給予值
default: function() {
return { message: "hello" };
},
validator: function(value) {
// 必須符合陣列中的值 才會通過
return ["success", "warning", "danger"].indexOf(value) !== -1;
}
}
}
};
現有一個 input (SomeForm) 已有 type & class 屬性想要替換他們,我們想將其 type 改成 text & 將其 class 新增 padding
<!-- 元件 -->
<input type="date" class="form-control">
<!-- 目標 -->
<input name="123" type="text" class="form-control p-5">
<!-- 父元件傳送 Props -->
<some-form name="123" type="text" class="p-5"></some-form>
參照文檔 Type Checks 或 类型检查